const path = require('path');
const webpack = require('webpack');
const VueLoaderPlugin = require('vue-loader/lib/plugin')
const htmlWebpackPlugin = require('html-webpack-plugin');
module.exports = {
    entry: path.join(__dirname,'./src/main.js'),
    output:{
        path: path.join(__dirname,'./dist/'),
        filename: 'bundle.js'
    },
    /*--open --port 3000 --contentBase src --hot*/
    devServer:{ 
        open:true,
        port:8080,
        // contentBase:'src',
        hot:true
    },
    plugins:[
        new webpack.HashedModuleIdsPlugin(),
        new VueLoaderPlugin(),
        new htmlWebpackPlugin({ //生成一个在内存中 生成html页面的插件
            template: path.join(__dirname,'./src/index.html'),
            filename:'index.html'
        })
    ],
    module:{//这个节点，用于配置所有的第三方模块加载器
        rules:[//所有第三方模块的匹配规则
            { test: /\.css$/, use: ['style-loader','css-loader']}, //配置处理 .css文件的第三方loader
            { test: /\.less$/, use: ['style-loader','css-loader','less-loader']},  
            { test: /\.scss$/, use: ['style-loader','css-loader','sass-loader']},
            { test: /\.vue$/, use: 'vue-loader' },
            { test: /\.(jpg|png|gif|bmp|jpeg)$/, use:'url-loader?limit=139345&name=[hash:8]-[name].[ext]' },//limit 给定的值是图片的大小单位是byte，如果我们引用的图片大于或等于给定的limit值，则不会被转为base64格式的字符串
            { test: /\.(woff|woff2|eot|ttf|otf|dtd|svg)$/, use:'url-loader' },
            { test: /\.js$/, use: 'babel-loader', exclude: /node_modules/ }//转换高级的ES6语法
        ]
    },
    resolve:{
        alias:{
            'vue$':'vue/dist/vue.js'
        }
    },
    externals: {
        'BMap': 'BMap'
      }

}